home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / syntax / texinfo.vim < prev    next >
Encoding:
Text File  |  2001-06-20  |  26.6 KB  |  410 lines

  1. " Vim syntax file
  2. " Language:    Texinfo (macro package for TeX)
  3. " Maintainer:    Sandor Kopanyi <sandor.kopanyi@mailbox.hu>
  4. " URL:        <->
  5. " Last Change:    2001 Jun 20
  6. "
  7. " the file follows the Texinfo manual structure; this file is based
  8. " on manual for Texinfo version 4.0, 28 September 1999
  9. " since @ can have special meanings, everything is 'match'-ed and 'region'-ed
  10. " (including @ in 'iskeyword' option has unexpected effects)
  11.  
  12. " Remove any old syntax stuff hanging around, if needed
  13. if version < 600
  14.   syn clear
  15. elseif exists("b:current_syntax")
  16.   finish
  17. endif
  18.  
  19. if !exists("main_syntax")
  20.   let main_syntax = 'texinfo'
  21. endif
  22.  
  23. "in Texinfo can be real big things, like tables; sync for that
  24. syn sync lines=200
  25.  
  26. "some general stuff
  27. "syn match texinfoError     "\S" contained TODO
  28. syn match texinfoIdent        "\k\+"          contained "IDENTifier
  29. syn match texinfoAssignment "\k\+\s*=\s*\k\+\s*$" contained "assigment statement ( var = val )
  30. syn match texinfoSinglePar  "\k\+\s*$"          contained "single parameter (used for several @-commands)
  31. syn match texinfoIndexPar   "\k\k\s*$"          contained "param. used for different *index commands (+ @documentlanguage command)
  32.  
  33.  
  34. "marking words and phrases (chap. 9 in Texinfo manual)
  35. "(almost) everything appears as 'contained' too; is for tables (@table)
  36.  
  37. "this chapter is at the beginning of this file to avoid overwritings
  38.  
  39. syn match texinfoSpecialChar                                "@acronym"          contained
  40. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@acronym{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  41. syn match texinfoSpecialChar                                "@b"                contained
  42. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@b{"       end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  43. syn match texinfoSpecialChar                                "@cite"             contained
  44. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@cite{"    end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  45. syn match texinfoSpecialChar                                "@code"             contained
  46. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@code{"    end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  47. syn match texinfoSpecialChar                                "@command"          contained
  48. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@command{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  49. syn match texinfoSpecialChar                                "@dfn"              contained
  50. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@dfn{"     end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  51. syn match texinfoSpecialChar                                "@email"            contained
  52. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@email{"   end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  53. syn match texinfoSpecialChar                                "@emph"             contained
  54. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@emph{"    end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  55. syn match texinfoSpecialChar                                "@env"              contained
  56. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@env{"     end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  57. syn match texinfoSpecialChar                                "@file"             contained
  58. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@file{"    end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  59. syn match texinfoSpecialChar                                "@i"                contained
  60. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@i{"       end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  61. syn match texinfoSpecialChar                                "@kbd"              contained
  62. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@kbd{"     end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  63. syn match texinfoSpecialChar                                "@key"              contained
  64. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@key{"     end="}" contains=texinfoSpecialChar
  65. syn match texinfoSpecialChar                                "@option"           contained
  66. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@option{"  end="}" contains=texinfoSpecialChar
  67. syn match texinfoSpecialChar                                "@r"                contained
  68. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@r{"       end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  69. syn match texinfoSpecialChar                                "@samp"             contained
  70. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@samp{"    end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  71. syn match texinfoSpecialChar                                "@sc"               contained
  72. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@sc{"      end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  73. syn match texinfoSpecialChar                                "@strong"           contained
  74. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@strong{"  end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  75. syn match texinfoSpecialChar                                "@t"                contained
  76. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@t{"       end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  77. syn match texinfoSpecialChar                                "@url"              contained
  78. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@url{"     end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  79. syn match texinfoSpecialChar                                "@var"              contained
  80. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@var{"     end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  81. syn match texinfoAtCmd "^@kbdinputstyle" nextgroup=texinfoSinglePar skipwhite
  82.  
  83.  
  84. "overview of Texinfo (chap. 1 in Texinfo manual)
  85. syn match texinfoComment  "@c .*"
  86. syn match texinfoComment  "@c$"
  87. syn match texinfoComment  "@comment .*"
  88. syn region texinfoMltlnAtCmd matchgroup=texinfoComment start="^@ignore\s*$" end="^@end ignore\s*$" contains=ALL
  89.  
  90.  
  91. "beginning a Texinfo file (chap. 3 in Texinfo manual)
  92. syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="@center "          skip="\\$" end="$"                    contains=texinfoSpecialChar,texinfoBrcPrmAtCmd oneline
  93. syn region texinfoMltlnDMAtCmd matchgroup=texinfoAtCmd start="^@detailmenu\s*$"             end="^@end detailmenu\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  94. syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="^@setfilename "    skip="\\$" end="$" contains=texinfoSpecialChar oneline
  95. syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="^@settitle "       skip="\\$" end="$" contains=texinfoSpecialChar oneline
  96. syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="^@shorttitlepage " skip="\\$" end="$" contains=texinfoSpecialChar oneline
  97. syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="^@title "          skip="\\$" end="$" contains=texinfoSpecialChar oneline
  98. syn region texinfoBrcPrmAtCmd  matchgroup=texinfoAtCmd start="@titlefont{"                  end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  99. syn region texinfoMltlnAtCmd   matchgroup=texinfoAtCmd start="^@titlepage\s*$"              end="^@end titlepage\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoMltlnDMAtCmd,texinfoAtCmd,texinfoPrmAtCmd,texinfoMltlnAtCmd
  100. syn region texinfoPrmAtCmd     matchgroup=texinfoAtCmd start="^@vskip "          skip="\\$" end="$" contains=texinfoSpecialChar oneline
  101. syn match texinfoAtCmd "^@exampleindent"     nextgroup=texinfoSinglePar skipwhite
  102. syn match texinfoAtCmd "^@headings"          nextgroup=texinfoSinglePar skipwhite
  103. syn match texinfoAtCmd "^\\input"            nextgroup=texinfoSinglePar skipwhite
  104. syn match texinfoAtCmd "^@paragraphindent"   nextgroup=texinfoSinglePar skipwhite
  105. syn match texinfoAtCmd "^@setchapternewpage" nextgroup=texinfoSinglePar skipwhite
  106.  
  107.  
  108. "ending a Texinfo file (chap. 4 in Texinfo manual)
  109. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="@author " skip="\\$" end="$" contains=texinfoSpecialChar oneline
  110. "all below @bye should be comment TODO
  111. syn match texinfoAtCmd "^@bye\s*$"
  112. syn match texinfoAtCmd "^@contents\s*$"
  113. syn match texinfoAtCmd "^@printindex" nextgroup=texinfoIndexPar skipwhite
  114. syn match texinfoAtCmd "^@setcontentsaftertitlepage\s*$"
  115. syn match texinfoAtCmd "^@setshortcontentsaftertitlepage\s*$"
  116. syn match texinfoAtCmd "^@shortcontents\s*$"
  117. syn match texinfoAtCmd "^@summarycontents\s*$"
  118.  
  119.  
  120. "chapter structuring (chap. 5 in Texinfo manual)
  121. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendix"            skip="\\$" end="$" contains=texinfoSpecialChar oneline
  122. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsec"         skip="\\$" end="$" contains=texinfoSpecialChar oneline
  123. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsection"     skip="\\$" end="$" contains=texinfoSpecialChar oneline
  124. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsubsec"      skip="\\$" end="$" contains=texinfoSpecialChar oneline
  125. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsubsubsec"   skip="\\$" end="$" contains=texinfoSpecialChar oneline
  126. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@centerchap"          skip="\\$" end="$" contains=texinfoSpecialChar oneline
  127. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@chapheading"         skip="\\$" end="$" contains=texinfoSpecialChar oneline
  128. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@chapter"             skip="\\$" end="$" contains=texinfoSpecialChar oneline
  129. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@heading"             skip="\\$" end="$" contains=texinfoSpecialChar oneline
  130. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@majorheading"        skip="\\$" end="$" contains=texinfoSpecialChar oneline
  131. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@section"             skip="\\$" end="$" contains=texinfoSpecialChar oneline
  132. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subheading "         skip="\\$" end="$" contains=texinfoSpecialChar oneline
  133. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsection"          skip="\\$" end="$" contains=texinfoSpecialChar oneline
  134. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsubheading"       skip="\\$" end="$" contains=texinfoSpecialChar oneline
  135. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsubsection"       skip="\\$" end="$" contains=texinfoSpecialChar oneline
  136. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subtitle"            skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd oneline
  137. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumbered"          skip="\\$" end="$" contains=texinfoSpecialChar oneline
  138. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsec"       skip="\\$" end="$" contains=texinfoSpecialChar oneline
  139. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsubsec"    skip="\\$" end="$" contains=texinfoSpecialChar oneline
  140. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsubsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
  141. syn match  texinfoAtCmd "^@lowersections\s*$"
  142. syn match  texinfoAtCmd "^@raisesections\s*$"
  143.  
  144.  
  145. "nodes (chap. 6 in Texinfo manual)
  146. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@anchor{"            end="}"
  147. syn region texinfoPrmAtCmd    matchgroup=texinfoAtCmd start="^@top"    skip="\\$" end="$" contains=texinfoSpecialChar oneline
  148. syn region texinfoPrmAtCmd    matchgroup=texinfoAtCmd start="^@node"   skip="\\$" end="$" contains=texinfoSpecialChar oneline
  149.  
  150.  
  151. "menus (chap. 7 in Texinfo manual)
  152. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@menu\s*$" end="^@end menu\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoMltlnDMAtCmd
  153.  
  154.  
  155. "cross references (chap. 8 in Texinfo manual)
  156. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@inforef{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  157. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@pxref{"   end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  158. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@ref{"     end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  159. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@uref{"    end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  160. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@xref{"    end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  161.  
  162.  
  163. "marking words and phrases (chap. 9 in Texinfo manual)
  164. "(almost) everything appears as 'contained' too; is for tables (@table)
  165.  
  166. "this chapter is at the beginning of this file to avoid overwritings
  167.  
  168.  
  169. "quotations and examples (chap. 10 in Texinfo manual)
  170. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@cartouche\s*$"        end="^@end cartouche\s*$"       contains=ALL
  171. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@display\s*$"          end="^@end display\s*$"         contains=ALL
  172. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@example\s*$"          end="^@end example\s*$"         contains=ALL
  173. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@flushleft\s*$"        end="^@end flushleft\s*$"       contains=ALL
  174. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@flushright\s*$"       end="^@end flushright\s*$"      contains=ALL
  175. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@format\s*$"           end="^@end format\s*$"          contains=ALL
  176. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@lisp\s*$"             end="^@end lisp\s*$"            contains=ALL
  177. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@quotation\s*$"        end="^@end quotation\s*$"       contains=ALL
  178. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smalldisplay\s*$"     end="^@end smalldisplay\s*$"    contains=ALL
  179. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smallexample\s*$"     end="^@end smallexample\s*$"    contains=ALL
  180. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smallformat\s*$"      end="^@end smallformat\s*$"     contains=ALL
  181. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smalllisp\s*$"        end="^@end smalllisp\s*$"       contains=ALL
  182. syn region texinfoPrmAtCmd   matchgroup=texinfoAtCmd start="^@exdent"    skip="\\$" end="$"                         contains=texinfoSpecialChar oneline
  183. syn match texinfoAtCmd "^@noindent\s*$"
  184. syn match texinfoAtCmd "^@smallbook\s*$"
  185.  
  186.  
  187. "lists and tables (chap. 11 in Texinfo manual)
  188. syn match texinfoAtCmd "@asis"             contained
  189. syn match texinfoAtCmd "@columnfractions"  contained
  190. syn match texinfoAtCmd "@item"             contained
  191. syn match texinfoAtCmd "@itemx"            contained
  192. syn match texinfoAtCmd "@tab"              contained
  193. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@enumerate"  end="^@end enumerate\s*$"  contains=ALL
  194. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ftable"     end="^@end ftable\s*$"     contains=ALL
  195. syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@itemize"    end="^@end itemize\s*$"    contains=ALL
  196. syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@multitable" end="^@end multitable\s*$" contains=ALL
  197. syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@table"      end="^@end table\s*$"      contains=ALL
  198. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@vtable"     end="^@end vtable\s*$"     contains=ALL
  199.  
  200.  
  201. "indices (chap. 12 in Texinfo manual)
  202. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@\(c\|f\|k\|p\|t\|v\)index"   skip="\\$" end="$" contains=texinfoSpecialChar oneline
  203. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@..index"                     skip="\\$" end="$" contains=texinfoSpecialChar oneline
  204. "@defcodeindex and @defindex is defined after chap. 15's @def* commands (otherwise those ones will overwrite these ones)
  205. syn match texinfoSIPar "\k\k\s*\k\k\s*$" contained
  206. syn match texinfoAtCmd "^@syncodeindex" nextgroup=texinfoSIPar skipwhite
  207. syn match texinfoAtCmd "^@synindex"     nextgroup=texinfoSIPar skipwhite
  208.  
  209. "special insertions (chap. 13 in Texinfo manual)
  210. syn match texinfoSpecialChar "@\(!\|?\|@\|\s\)"
  211. syn match texinfoSpecialChar "@{"
  212. syn match texinfoSpecialChar "@}"
  213. "accents
  214. syn match texinfoSpecialChar "@=."
  215. syn match texinfoSpecialChar "@\('\|\"\|\^\|`\)[aeiouyAEIOUY]"
  216. syn match texinfoSpecialChar "@\~[aeinouyAEINOUY]"
  217. syn match texinfoSpecialChar "@dotaccent{.}"
  218. syn match texinfoSpecialChar "@H{.}"
  219. syn match texinfoSpecialChar "@,{[cC]}"
  220. syn match texinfoSpecialChar "@AA{}"
  221. syn match texinfoSpecialChar "@aa{}"
  222. syn match texinfoSpecialChar "@L{}"
  223. syn match texinfoSpecialChar "@l{}"
  224. syn match texinfoSpecialChar "@O{}"
  225. syn match texinfoSpecialChar "@o{}"
  226. syn match texinfoSpecialChar "@ringaccent{.}"
  227. syn match texinfoSpecialChar "@tieaccent{..}"
  228. syn match texinfoSpecialChar "@u{.}"
  229. syn match texinfoSpecialChar "@ubaraccent{.}"
  230. syn match texinfoSpecialChar "@udotaccent{.}"
  231. syn match texinfoSpecialChar "@v{.}"
  232. "ligatures
  233. syn match texinfoSpecialChar "@AE{}"
  234. syn match texinfoSpecialChar "@ae{}"
  235. syn match texinfoSpecialChar "@copyright{}"
  236. syn match texinfoSpecialChar "@bullet" contained "for tables and lists
  237. syn match texinfoSpecialChar "@bullet{}"
  238. syn match texinfoSpecialChar "@dotless{i}"
  239. syn match texinfoSpecialChar "@dotless{j}"
  240. syn match texinfoSpecialChar "@dots{}"
  241. syn match texinfoSpecialChar "@enddots{}"
  242. syn match texinfoSpecialChar "@equiv" contained "for tables and lists
  243. syn match texinfoSpecialChar "@equiv{}"
  244. syn match texinfoSpecialChar "@error{}"
  245. syn match texinfoSpecialChar "@exclamdown{}"
  246. syn match texinfoSpecialChar "@expansion{}"
  247. syn match texinfoSpecialChar "@minus" contained "for tables and lists
  248. syn match texinfoSpecialChar "@minus{}"
  249. syn match texinfoSpecialChar "@OE{}"
  250. syn match texinfoSpecialChar "@oe{}"
  251. syn match texinfoSpecialChar "@point" contained "for tables and lists
  252. syn match texinfoSpecialChar "@point{}"
  253. syn match texinfoSpecialChar "@pounds{}"
  254. syn match texinfoSpecialChar "@print{}"
  255. syn match texinfoSpecialChar "@questiondown{}"
  256. syn match texinfoSpecialChar "@result" contained "for tables and lists
  257. syn match texinfoSpecialChar "@result{}"
  258. syn match texinfoSpecialChar "@ss{}"
  259. syn match texinfoSpecialChar "@TeX{}"
  260. "other
  261. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@dmn{"      end="}"
  262. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@footnote{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  263. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@image{"    end="}"
  264. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@math{"     end="}"
  265. syn match texinfoAtCmd "@footnotestyle" nextgroup=texinfoSinglePar skipwhite
  266.  
  267.  
  268. "making and preventing breaks (chap. 14 in Texinfo manual)
  269. syn match texinfoSpecialChar  "@\(\*\|-\|\.\)"
  270. syn match texinfoAtCmd        "^@need"     nextgroup=texinfoSinglePar skipwhite
  271. syn match texinfoAtCmd        "^@page\s*$"
  272. syn match texinfoAtCmd        "^@sp"       nextgroup=texinfoSinglePar skipwhite
  273. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@group\s*$"   end="^@end group\s*$" contains=ALL
  274. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@hyphenation{" end="}"
  275. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@w{"           end="}"               contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  276.  
  277.  
  278. "definition commands (chap. 15 in Texinfo manual)
  279. syn match texinfoMltlnAtCmdFLine "^@def\k\+" contained
  280. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@def\k\+" end="^@end def\k\+$"      contains=ALL
  281.  
  282. "next 2 commands are from chap. 12; must be defined after @def* commands above to overwrite them
  283. syn match texinfoAtCmd "@defcodeindex" nextgroup=texinfoIndexPar skipwhite
  284. syn match texinfoAtCmd "@defindex" nextgroup=texinfoIndexPar skipwhite
  285.  
  286.  
  287. "conditionally visible text (chap. 16 in Texinfo manual)
  288. syn match texinfoAtCmd "^@clear" nextgroup=texinfoSinglePar skipwhite
  289. syn region texinfoMltln2AtCmd matchgroup=texinfoAtCmd start="^@html\s*$"        end="^@end html\s*$"
  290. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifclear"         end="^@end ifclear\s*$"   contains=ALL
  291. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifhtml"          end="^@end ifhtml\s*$"    contains=ALL
  292. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifinfo"          end="^@end ifinfo\s*$"    contains=ALL
  293. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifnothtml"       end="^@end ifnothtml\s*$" contains=ALL
  294. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifnotinfo"       end="^@end ifnotinfo\s*$" contains=ALL
  295. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifnottex"        end="^@end ifnottex\s*$"  contains=ALL
  296. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@ifset"           end="^@end ifset\s*$"     contains=ALL
  297. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@iftex"           end="^@end iftex\s*$"     contains=ALL
  298. syn region texinfoPrmAtCmd    matchgroup=texinfoAtCmd start="^@set " skip="\\$" end="$" contains=texinfoSpecialChar oneline
  299. syn region texinfoTexCmd                              start="\$\$"              end="\$\$" contained
  300. syn region texinfoMltlnAtCmd  matchgroup=texinfoAtCmd start="^@tex"             end="^@end tex\s*$"       contains=texinfoTexCmd
  301. syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@value{"           end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  302.  
  303.  
  304. "internationalization (chap. 17 in Texinfo manual)
  305. syn match texinfoAtCmd "@documentencoding" nextgroup=texinfoSinglePar skipwhite
  306. syn match texinfoAtCmd "@documentlanguage" nextgroup=texinfoIndexPar skipwhite
  307.  
  308.  
  309. "defining new texinfo commands (chap. 18 in Texinfo manual)
  310. syn match texinfoAtCmd  "@alias"                      nextgroup=texinfoAssignment skipwhite
  311. syn match texinfoDIEPar "\S*\s*,\s*\S*\s*,\s*\S*\s*$" contained
  312. syn match texinfoAtCmd  "@definfoenclose"             nextgroup=texinfoDIEPar     skipwhite
  313. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@macro" end="^@end macro\s*$" contains=ALL
  314.  
  315.  
  316. "formatting hardcopy (chap. 19 in Texinfo manual)
  317. syn match texinfoAtCmd "^@afourlatex\s*$"
  318. syn match texinfoAtCmd "^@afourpaper\s*$"
  319. syn match texinfoAtCmd "^@afourwide\s*$"
  320. syn match texinfoAtCmd "^@finalout\s*$"
  321. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@pagesizes" end="$" oneline
  322.  
  323.  
  324. "creating and installing Info Files (chap. 20 in Texinfo manual)
  325. syn region texinfoPrmAtCmd   matchgroup=texinfoAtCmd start="^@dircategory"  skip="\\$" end="$" oneline
  326. syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@direntry\s*$"            end="^@end direntry\s*$" contains=texinfoSpecialChar
  327. syn match  texinfoAtCmd "^@novalidate\s*$"
  328.  
  329.  
  330. "include files (appendix E in Texinfo manual)
  331. syn match texinfoAtCmd "^@include" nextgroup=texinfoSinglePar skipwhite
  332.  
  333.  
  334. "page headings (appendix F in Texinfo manual)
  335. syn match texinfoHFSpecialChar "@|"               contained
  336. syn match texinfoThisAtCmd     "@thischapter"     contained
  337. syn match texinfoThisAtCmd     "@thischaptername" contained
  338. syn match texinfoThisAtCmd     "@thisfile"        contained
  339. syn match texinfoThisAtCmd     "@thispage"        contained
  340. syn match texinfoThisAtCmd     "@thistitle"       contained
  341. syn match texinfoThisAtCmd     "@today{}"         contained
  342. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@evenfooting"  skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
  343. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@evenheading"  skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
  344. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@everyfooting" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
  345. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@everyheading" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
  346. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@oddfooting"   skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
  347. syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@oddheading"   skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
  348.  
  349.  
  350. "refilling paragraphs (appendix H in Texinfo manual)
  351. syn match  texinfoAtCmd "@refill"
  352.  
  353.  
  354. syn cluster texinfoAll contains=ALLBUT,{texinfoThisAtCmd,texinfoHFSpecialChar}
  355. syn cluster texinfoReducedAll contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
  356. "==============================================================================
  357. " highlighting
  358.  
  359. " For version 5.7 and earlier: only when not done already
  360. " For version 5.8 and later: only when an item doesn't have highlighting yet
  361. if version >= 508 || !exists("did_texinfo_syn_inits")
  362.  
  363.   if version < 508
  364.     let did_texinfo_syn_inits = 1
  365.     command -nargs=+ HiLink hi link <args>
  366.   else
  367.     command -nargs=+ HiLink hi def link <args>
  368.   endif
  369.  
  370.   HiLink texinfoSpecialChar    Special
  371.   HiLink texinfoHFSpecialChar    Special
  372.  
  373.   HiLink texinfoError        Error
  374.   HiLink texinfoIdent        Identifier
  375.   HiLink texinfoAssignment    Identifier
  376.   HiLink texinfoSinglePar    Identifier
  377.   HiLink texinfoIndexPar    Identifier
  378.   HiLink texinfoSIPar        Identifier
  379.   HiLink texinfoDIEPar        Identifier
  380.   HiLink texinfoTexCmd        PreProc
  381.  
  382.  
  383.   HiLink texinfoAtCmd        Statement    "@-command
  384.   HiLink texinfoPrmAtCmd    String        "@-command in one line with unknown nr. of parameters
  385.                         "is String because is found as a region and is 'matchgroup'-ed
  386.                         "to texinfoAtCmd
  387.   HiLink texinfoBrcPrmAtCmd    String        "@-command with parameter(s) in braces ({})
  388.                         "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
  389.   HiLink texinfoMltlnAtCmdFLine  texinfoAtCmd    "repeated embedded First lines in @-commands
  390.   HiLink texinfoMltlnAtCmd    String        "@-command in multiple lines
  391.                         "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
  392.   HiLink texinfoMltln2AtCmd    PreProc        "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
  393.   HiLink texinfoMltlnDMAtCmd    PreProc        "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors; used for @detailmenu, which can be included in @menu)
  394.   HiLink texinfoMltlnNAtCmd    Normal        "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
  395.   HiLink texinfoThisAtCmd    Statement    "@-command used in headers and footers (@this... series)
  396.  
  397.   HiLink texinfoComment    Comment
  398.  
  399.   delcommand HiLink
  400. endif
  401.  
  402.  
  403. let b:current_syntax = "texinfo"
  404.  
  405. if main_syntax == 'texinfo'
  406.   unlet main_syntax
  407. endif
  408.  
  409. " vim: ts=8
  410.